package com.sc.nft.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.dto.TaskParticipationRecordDTO;
import com.sc.nft.dto.TaskRewardListDTO;
import com.sc.nft.entity.SaasUserTask;
import com.sc.nft.entity.UserInfo;
import com.sc.nft.entity.dto.SaasUserWaitingToBeClaimedTaskDTO;
import com.sc.nft.entity.dto.TaskStarRewardListDTO;
import com.sc.nft.entity.vo.*;
import org.apache.ibatis.annotations.Param;
import com.sc.nft.entity.SaasUserTask;
import java.util.List;
/**
 * 用户任务命中(SaasUserTask)表数据库访问层
 *
 * @author 王伟成
 * @since 2024-01-11 15:10:00
 */
public interface SaasUserTaskMapper extends BaseMapper<SaasUserTask> {

    IPage<SaasUserWaitingToBeClaimedTaskVO> userWaitingToBeClaimedTask(Page mp, @Param("saasUserTaskParticipatingTaskDTO") SaasUserWaitingToBeClaimedTaskDTO saasUserTaskParticipatingTaskDTO, @Param("user") UserInfo user);



    IPage<TaskRewardListVO> taskRewardList(Page mp, @Param("data") TaskRewardListDTO taskRewardListDTO);

    List<SaasUserTaskIdGainAwardVO> getByUserTaskIdGainAward(@Param("saasTaskId") Long saasTaskId, @Param("taskAwardId") Long taskAwardId);
    IPage<TaskParticipationRecordVO> taskParticipationRecord(Page mp, @Param("data") TaskParticipationRecordDTO taskParticipationRecordDTO);

    /**
     * 任务星级奖励列表
     * @param mp
     * @param taskStarRewardListDTO
     * @return
     */
    IPage<TaskStarRewardListVO> taskStarRewardList(Page mp, @Param("data") TaskStarRewardListDTO taskStarRewardListDTO);
    IPage<TaskParticipationRecordVO> taskStarParticipationRecord(Page mp, @Param("data") TaskParticipationRecordDTO taskParticipationRecordDTO);

}
